Loading...
2024. 8. 3. 03:06

matrix factorization을 이용한 추천시스템 간단한 이론과 구현예시

1. matrix factorization 사용자 * 아이템으로 구성된 하나의 행렬을 2개의 행렬로 분해하는 방법 사용자와 아이템이 각각 무엇인지는 모르겠지만 k개의 잠재요인(latent factor)으로 설명할 수 있다고 생각하고, (사용자 * 잠재요인) * (잠재요인 * 아이템)의 두 행렬의 곱으로 나타낼 수 있다는 것이다.   행렬 R은 M명의 사용자가 N개의 아이템에 대해 평가한 점수가 있는 행렬 M명의 사용자는 모든 아이템에 대해 평가하지는 않는다.  내가 소유한 아이템, 경험해본 아이템에 대해서는 평가할 수 있어도(혹은 평가하지 않고)  경험해보지 않은 아이템에 평가하지는 않는다(거짓으로 할수도 있겠지만..) 그래서 R은 대부분의 아이템이 NULL인 sparse matrix이다. 이러한 행렬 ..

2024. 7. 19. 02:04

시간에 따른 편향을 고려한 latent factor model

1. motivation 우연히 넷플릭스 시스템의 변화로 전체 영화들의 평점 평균이 급격히 상승한 사건이 관측 되었다.    심지어 영화의 평점은 출시일 이후부터 관측해보면 상승하는 경향이 있었음   어떤 영화로 인해 팬이 되면서 오랜 출시일이 지난 영화를 찾아본다거나 입소문이 나면서 평이 좋은 영화를 추천 받아서 본다거나 추천시스템이 좋다고 하는 것을 계속 보거나  2. idea 영화의 평점이 시간에 영향을 받는다는 것을 알았으므로 사용자의 편향과 상품의 편향이 시간의 함수라고 가정함   위 모형을 바탕으로 앞에서와 같이 모형의 복잡도까지 고려한 loss function을 구성하고  경사하강법으로 loss를 줄이면서 최적화시켜 사용자편향, 상품편향, 사용자 embedding, 상품 embedding을 ..

2024. 7. 17. 23:46

사용자와 상품의 편향을 고려한 latent factor model

1. 편향(bias) 사용자의 편향은 해당 사용자가 매긴 평점들의 평균과 전체 상품들의 평점평균의 차이 전체 평점평균에 대해 이 사용자는 얼마나 평가를 후하게 하는지 박하게 하는지 알 수 있다.    나연은 전체 상품들의 평점평균에 비해 0.3점 정도 더 주는 경향이 있다. 상품의 편향은 해당 상품이 받은 평점들의 평균과 전체 상품들의 평점평균의 차이 해당 상품이 전체 상품의 평점평균에 비해 얼마나 좋은 평가를 받는지 나쁜 평가를 받는지 알 수 있다.   식스센스는 전체 상품들의 평점평균에 비해 0.8점정도 긍정적으로 평가 받는다 사용자와 상품의 편향은 현재 주어진 데이터로부터 계산한 예측값이다.  그러니까 정확한 상수가 아니라는 뜻이다.  데이터가 추가되면 사용자의 평점이나 상품의 평점은 바뀌기 때문에..

2024. 7. 16. 23:16

latent factor model for recommendation system

1. motivation UV decomposition이라고도 부른다. (SVD라고도 부르나 수학에서 말하는 SVD랑은 조금 차이가 있음) 사용자와 상품그래프에서 사용자와 상품 node를 embedding vector로 잘 표현하는 것이 핵심이다.  2. example of embedding 사용자와 영화의 정보를 바탕으로 embedding한 예시    빨간색 네모부분 사람은 영화 브레이브하트와 리쏄 웨폰과 가까워서 이 영화를 추천하겠다 그러나 latent factor model의 핵심은  위와 같은 고정된 인수(액션, 로맨스 영화 등등)를 가지는 차원이 아닌  사용자와 상품의 정보를 효과적으로 학습하여 가장 추천을 잘 해줄법한 latent factor를 찾아내 그곳으로 embedding하겠다는 것이다...

2024. 7. 5. 00:49

추천시스템 평가 방법

사용자별 상품에 대한 평점을 원소로 가지는 행렬데이터를 생각 평점을 주지 않거나 구매하지 않은 경우에 대해서는 원소가 비어있다.     주어진 데이터를 적절한 비율의 훈련데이터와 평가데이터로 나누고  평가데이터는 추천시스템 모형을 만드는데 사용하지 않는다. 주어지지 않았다고 가정하자.    훈련 데이터를 이용해 만든 추천 시스템으로 평가 데이터의 빈 곳을 추정함     실제 평가데이터와 추정된 평가데이터를 비교하여 모형의 성능을 평가  비교하는 지표로는 MSE,RMSE부터 여러가지를 사용함     추정한 평점으로 순위를 매긴 후 실제 평점으로 매긴 순위와의 상관계수 추천한 상품 중 실제 구매로 이루어진 것의 비율 추천의 순서나 다양성까지 고려한 여러 지표들

2022. 11. 10. 02:01

추천시스템 기본이론2 -collaborative filtering-

1. motivation 상품을 추천하고자하는 사용자가 x일때, x와 유사한 취향을 가지는 여러 사용자들을 찾는다. 이 유사한 취향을 가지는 여러 사용자들이 선호한 상품들을 찾는다. 이 상품들을 x에게 추천하고자 하는 방법이 협업 필터링이다. 2. idea 유사한 취향의 사용자들을 찾는 것이 핵심인데 어떻게 찾아야 할까? 위와 같은 상황을 상상해보자. 평점이 입력되지 않는 경우도 존재한다. 그리고 한눈에 보면 지수와 제니는 취향이 비슷하고 제니와 로제는 취향이 서로 반대된다. 지표로 어떻게 나타내냐? 평점간 상관계수로 두 사람의 취향의 유사도를 구하는 것이다. 공동 구매한 상품을 가정하고 있는데 2명중 평점을 1명만 제시한 경우 그 상품은 상관계수 계산에 제외하겠다는 것이다. 당연하지만 분자를 보면 같은..